<?php
/**
 * 餐厅基类
 * 2019年12月28日19:08:07
 */
namespace Application\Common\Responsichain\UseResponsichain;

class Restaurant
{
    // 餐厅名称
    protected $name;
    // 责任链链节点
    protected $chain;
    // 构造方法
    public function __construct($name = null)
    {
        $this -> name = $name;
    }
    // 设置 责任链链节点
    public function setChain($chain)
    {
        $this -> chain = $chain;
    }
    // 执行方法
    public function haveMeal()
    {
        $number = mt_rand(1,1000);
        if($number%3 === 1){
            echo "就在此餐厅就餐，此餐厅名称为：{$this -> name}";
            return true;
        }elseif($this -> chain != null){
            // 关键之处：调用链
            return $this -> chain -> haveMeal();
        }
        return false;
    }
}
